from submodules.common.lib.email_ import logger


def loads(file_path, has_header=True):
    '''
    读取csv文件的方法，将csv转化为list

    returns:
    has_header=True示例:
    [{'prompt': '你是谁？', 'prompt_id': 'sy62744', 'createType': 'sft-英语', 'aidp_tag': '["sft-英语"]'}, {'prompt': '你是谁？', 'prompt_id': 'sy63740', 'createType': 'sft-英语', 'aidp_tag': '["sft-英语"]'}, {'prompt': '你是谁？', 'prompt_id': 'sy64736', 'createType': 'sft-英语', 'aidp_tag': '["sft-英语"]'}, {'prompt': '你是谁？', 'prompt_id': 'sy66728', 'createType': 'sft-代码', 'aidp_tag': '["sft-代码"]'}, {'prompt': '你是谁？', 'prompt_id': 'sy67724', 'createType': 'sft-代码', 'aidp_tag': '["sft-代码"]'}, {'prompt': '你是谁？', 'prompt_id': 'sy68720', 'createType': 'sft-代码', 'aidp_tag': '["sft-代码"]'}]
    has_header=False示例:
    [['你是谁？', 'sy62744', 'sft-英语', '["sft-英语"]'], ['你是谁？', 'sy63740', 'sft-英语', '["sft-英语"]'], ['你是谁？', 'sy64736', 'sft-英语', '["sft-英语"]'], ['你是谁？', 'sy66728', 'sft-代码', '["sft-代码"]'], ['你是谁？', 'sy67724', 'sft-代码', '["sft-代码"]'], ['你是谁？', 'sy68720', 'sft-代码', '["sft-代码"]']]
    '''
    loaded_csv = []
    headers = []
    with open(file_path, "r", encoding="utf-8") as f:
        lines = f.readlines()
        for index1, line in enumerate(lines):
            if has_header:
                if index1 == 0:
                    headers = line.strip("\n").split(",")
                else:
                    line_list = line.strip("\n").split(",")
                    dict_tmp = {}
                    for index2, header in enumerate(headers):
                        try:
                            value = line_list[index2]
                        except IndexError:
                            value = ""
                            logger.error("数据长度小于表头长度，字段值已使用空字符串补齐")
                        dict_tmp[header] = value
                    loaded_csv.append(dict_tmp)
            else:
                loaded_csv.append(line.strip("\n").split(","))
    return loaded_csv
